uC/OS

ucos 确实不难,应该好好利用

D:\code\ucos E:\硬件\操作系统\uCOS

ucos 函数

void OSTimeDLY(INT16U ticks) void OSTimeDlyHMSM(INT8U hours,INT8U minutes,INT8U seconds,INT16U milli)

创建任务

INT8U OSTaskCreate(

void (*task)(void *pd), //任务代码指针 void *pdata, //任务参数指针 OS_STK *ptos, //任务栈的栈顶指针 INT8U prio //任务的优先级 );

例如: OSTaskCreate(MyApp,

(void *)0, (OS_STK *)&MyAppStk[TASK_STK_SIZE-1], TASK_START_PRI0+2, ) ;

一个任务通常是一个无限循环(返回值类型void) void MyApp(void *pdata) {

pdata = pdata ; while (1) { do something; waiting; do something;

} }

任务也可以自我删除(并非真的删除,只是内核不再知道该任务) void MyTask (void *pdata) {

/* 用户代码 */ ...... OSTaskDel(OS_PRIO_SELF);

}

任务优先级数值越小,优先级越高。 系统保留了优先级为0、1、2、3、OS_LOWEST_PRIO-3、OS_LOWEST_PRI0-2, OS_LOWEST_PRI0-1 以及OS_LOWEST_PRI0这8个任务以被将来使用, 用户可以有56个应用任务; 任务的优先级同样也是它的标识号ID

基本数据类型

typedef unsigned char BOOLEAN; typedef unsigned char INT8U; typedef signed char INT8S; typedef unsigned int INT16U; typedef signed int INT16S; typedef unsigned long INT32U; typedef signed long INT32S; typedef float FP32; typedef double FP64;